#ifndef _COMMAND_H_
#define _COMMAND_H_

#include "receiver.h"

// 抽象命令类
class Command
{
public:
    Command();
    virtual ~Command();
    
public:
    virtual void Execute() = 0;
};

class ConcreteCommand1 : public Command
{
public:
    ConcreteCommand1(Receiver* receiver);    
    ~ConcreteCommand1();
    
    virtual void Execute();
    
private:
    Receiver* receiver_;
};

class ConcreteCommand2 : public Command
{
public:
    ConcreteCommand2(Receiver* receiver);    
    ~ConcreteCommand2();
    
    virtual void Execute();
    
private:
    Receiver* receiver_;    
};

#endif // _COMMAND_H_